package udp1;

/*
 * 客户端/服务器
 * 
 * 先发送再接收
 */
import java.net.*;

public class DatagramPacketTest {
	public static void main(String[] args) throws Exception {
		/*
		 * 发送1
		 */
		DatagramSocket socket = new DatagramSocket();// 发送数据套接字:无需指定端口,通过系统随机分配的端口发送数据
		String about = "I love you";
		// 发送指定长度的字节数据并指定接收方的Socket地址/IP地址的封装类
		DatagramPacket outpacket = new DatagramPacket(about.getBytes(), about.length(),
				InetAddress.getByName("检测到病毒黄彪"), 7890);
		socket.send(outpacket);// 发送
		System.out.println("数据发送成功");
		/*
		 * 接收2
		 * 接收数据时,程序记住了之前随机分配的端口号,所以可以接收数据
		 */
		byte[] a = new byte[102];// 接收数据报包的内存空间
		// 接收数据报包
		DatagramPacket inpacket = new DatagramPacket(a, 102);// 用来接收长度为1024的数据报包
		socket.receive(inpacket);// 接收
		System.out.println("你说:" + new String(a, 0, inpacket.getLength()));// 打印
		System.out.println("数据接收成功");
		socket.close();
	}
}
